
/*
*Released on 28th June 2008.
*Any violations can be reported at paritosh@wikiocean.net
*What is treated as violations can be found at www.wikiocean.net/ppl1-voilations*
******************************************************************************
* The contents of this file are subject to POOL Public License 1.0 and later.
* POOL Public License is based on Affero GPL v3 and additional conditions.
* ("License"); You may not use this file except in compliance with the License
* You may obtain a copy of the Affero GPL v3 License at http://www.gnu.org/licenses/agpl.html
* You may obtain a copy of the POOL Public License 1.0 or later at www.wikiocean.net/license/ppl.html
* Software distributed under POOL Public License 1.0 is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for
* the specific language governing rights and limitations under the License.
* The Initial Developer of the Original Code is Paritosh Pungaliya (C) 2008. All Rights Reserved.
******************************************************************************
* Objective of the additional terms (license)
* 1) Is to extend the software freedom to freedom to work.
* 2) To ensure that knowledge is free from monopoly of agencies.
* 3) To avoid a situation where big corporate or investor can buy out free software groups and companies and then start milking the communities built around it.
* (this trend can be seen how the freedom is curtailed in companies that get Venture Capital funding.)
******************************************************************************
*/

package  utility;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Hashtable;

import logger.PoolLogger;
import dbmanager.DBManager;

public class ReplacesSpecialCharacter
{
	final String MSGTYPE="msgtype";
	final String COMMAND="command";
	final String FIELDNAME ="fieldname";
	final String SPCHAR ="spchar";
	PoolLogger pl;
	
	public ReplacesSpecialCharacter() 
	{	
		// logger
		pl = (PoolLogger) PoolLogger.getLogger(this.getClass().getName());
		
	}
	
	public  Hashtable< Object, Object> ReplacesChar(String tablename,Hashtable<Object, Object >map,String process)
	{
		map = ConvertToLower.convertHashKey(map);
		Hashtable< Object, Object>htable = new Hashtable<Object, Object>();
		htable.put(MSGTYPE,tablename);
		htable.put("process", process);
		ResultSet rs =DBManager.getselect(htable, COMMAND);
		htable.clear();
		htable.putAll(map);
		try 
		{
			while(rs.next())
			{
				try 
				{
					String Fieldname = rs.getString(FIELDNAME).toLowerCase();
					if(map.containsKey(Fieldname))
					{
						htable.put(rs.getString(SPCHAR),map.get(Fieldname));
						htable.remove(Fieldname);
					}
				}
				catch (Exception e) {
				}
			}
		} 
		catch (SQLException e) 
		{
			System.out.println("Exception in Utility::ReplacesSpecialChararter::ReplacesChar ->SQLException" );
			pl.info("Exception in Utility::ReplacesSpecialChararter::ReplacesChar ->SQLException" );
			pl.debug("Exception in Utility::ReplacesSpecialChararter::ReplacesChar ->SQLException" );
			pl.warn("Exception in Utility::ReplacesSpecialChararter::ReplacesChar ->SQLException" );
			pl.fatal("Exception in Utility::ReplacesSpecialChararter::ReplacesChar ->SQLException" );
			pl.error("Exception in Utility::ReplacesSpecialChararter::ReplacesChar ->SQLException" );
			pl.trace("Exception in Utility::ReplacesSpecialChararter::ReplacesChar ->SQLException" );
			e.printStackTrace();
		}
		return htable;
	}
	public static void main(String[] args) 
	{	
		ReplacesSpecialCharacter rsc = new ReplacesSpecialCharacter();
		Hashtable<Object, Object>map = new Hashtable<Object, Object>();
		map.put("Conditionoperator","123");
		map.put("Conditionvalue","12");
		map.put("MN","21");
		//System.out.println(rsc.ReplacesChar("Condition", map));
	}
}
